home *** CD-ROM | disk | FTP | other *** search
- ===========================================
- 26/Jan/95 Released version V1.40 onto AmiNet
- ===========================================
-
- New in V1.40:
- ------------
-
- Added overflow(-v), range(-r), stack(-s) & divide-by-0(-z) checking.
- Some of your old modules may fail. :)
- The stack checking routines require that atleast 2K of stack be always
- available.
- Overflow checking will only be performed on 32Bit multiplys if the
- the new -020 option is enabled.
-
- Added Raw module for setting the console to RAW mode.
- Added FIO.SetBuffer functions which will set a console to RAW in FIO/StdIO
- recognised way.
-
- Added CliArgs module, V36+ dosers may like to use Dos.ReadArgs instead.
- Do not use M2Lib.argc & M2Lib.argv anymore.
-
- Added FastStorage module.
-
- Pointer checking is no longer performed inline. So modules that use it are
- much smaller.
-
- Bugs in V1.3, fixed in V1.40:
- -----------------------------
-
- Registers d2 & d3 were sometimes not being protected by procedures which
- used LONGREAL floating point math.
-
- Assertion failures occured when the symbol file cache was turned
- off (M2SYMCACHE=OFF) and multiple filenames were passed to M2C.
-
- Assignments between BCPL pointer and normal pointers were not being
- converted correctly.
-
- FIO.mod was not using the result of StdIO.fprintf correcty, leading
- to bogus OpFailed results from functions like WriteInt, WriteReal ...
-
- Two disjointed subrange types such as [0..10] & [100..200] are no longer
- assignment compatible. VAL & CHR will also complain.
-
- Renamed module 'ModeID' to 'ModeKeys'.
-
- If a task created using Dos.CreateProc or AmigaLib.CreateTask ever hit a
- runtime error, it would abort using the main tasks exit code.
- Under 1.40 aborting tasks (execpt the main one) will be suspended
- (after the error requester is displayed). You should make sure that any
- created tasks never run into such trouble.
-
- Added new '-P' compiler flag because '-p' does not work on some Amigas.
-
- LONGCARD & ADDRESS are properly unsigned.
- If you mix ADDRESS expressions with integer (signed) expressions then the
- resultant expression will be signed. Use standard function VAL to keep the
- sign under control.
-
- ==========================================
- 6/Dec/94 Released version V1.3 onto AmiNet
- ==========================================
-
- New in V1.3:
- ------------
-
- Added pointer range checking to procedure variables.
-
- For some unknown reason V1.2 never got uploaded onto AmiNet?
- V1.3 does not contain any major new features but does contain a few
- bug fixes:
-
- Bugs in V1.2, fixed in V1.3:
- ----------------------------
-
- Changed Exec.MsgPort.mp_Flags from SHORTSET to SHORTCARD.
-
- Changed Intuition.IntuiMessage.Qualifier from CARDINAL to BITSET.
-
- INC & DEC were not coerceing their second arguments.
-
- RETURN did not like procedure (constant) results: (ST 1025 HALT).
-
- M2C should now run (most of the time) from a 4K stack.
- V1.1 used to run in 4K but V1.2 did not.
- Youll get a requester if stack space ever runs out.
-
- M2B,M2C,M2E,M2L now all print error messages to "*", the output of m2e
- still goes to Dos.Output(), so can be still be redirected.
-
- =========================================
- 18/Nov/94 Version V1.2 (Never released??)
- =========================================
-
- New in V1.2:
- ------------
-
- Major new feature: Resident symbol files (see CACHE.DOC).
- This has probably introduced lots of new bugs :)
-
- Added crude object file caching (see CACHE.DOC).
-
- M2B no longer repeatedly invokes M2C, instead it passes a list of filenames
- to M2C. If you disable the symbol file cache, then loaded symbol files will
- still be shared between these files.
-
- M2B & M2L automatically invoke M2E.
-
- Added RealInOut module (see RealInOut.def).
-
- Added BIO & FIO modules
- The floating point functions in these modules can only be used with
- the full version of DICE. All other functions are perfectly useable
- with the (included) freeware version. (see M2/BIO.def M2/FIO.def).
-
- Added module CLOSE termination statement sequence to free allocated
- resources. Renamed Intuition.CLOSE constant to _CLOSE because it know
- clashes with the new CLOSE keyword (see EXTENSIONS.DOC).
-
- Added disable value open array copying (* @N *) comment switch
- (see EXTENSIONS.DOC).
-
- M2B & M2C & M2L now work just as well under OS 1.3 as 2.0+.
- Previouly (under 1.3) break detection was not propagated to sub programs.
- However 1.3 support increases the size of M2B, M2C & M2L by 4K.
- When running under 1.3 NewCli, EndCli & Run must be in youre path,
- I recommend you make them resident.
-
- MODULA:lib renamed to MODULA:mlib, MLIB: is assigned to MODULA:mlib.
-
- We no longer use the c.o supplied with DICE, instead MODULA:dice/dlib/
- contains a version that does not contain a bug that made it unsuitable
- for programs that used coroutines.
-
- Programs compiled with pointer checking enabled (-p) should run faster
- because pointer checking no longer needs to check VAR parameter accesses,
- instead any pointer deferenced to a formal VAR parameter is checked only
- once (that is when its pushed). The same goes for fields inside WITH
- statements (for pointers to records).
-
- Bugs in V1.1, fixed in V1.2:
- ----------------------------
-
- NIL pointer tests in Storage.DE/ALLOCATE were missing.
-
- Removed unnessacary padding for byte fields declared in non-inteface
- modules. If you created any persistent file based data structures with M2C
- v1.1, then you may have trouble reading them back in!
-
- Fixed case sensitive file suffix comparisons in M2B & M2C.
-
- Made run time array index checking error location reports more accurate.
-
- Corrected StdIO.getc & Dos.DupLock function definitions.
-
- When longreal function procedures declared inside DEFINITION FOR * MODULE
- were begin treated as proper procedures (ie the result ignored, as allowed)
- the function result was being pushed onto the stack for no reason, resulting
- in address error failures.
-
- Fixed M2C TRAPV failures when going from large negative LONGREAL to REAL
- constant at compile time eg real := MIN(LONGREAL).
-
- M2C & M2L would sometimes forget to unlock directories specified using -M
- flag.
-
- M2C & M2L used to append "\" to -Mpaths that ended with ':'
- eg ram: into ram:\
-
- M2C used to a give requester: "function exit without return"
- in TC.mod (source module) on line 929, when set expressions contain
- out of range (0..31) values (eg {100}).
-
- Added overflow checks to internal memory table arrays.
-
- M2C did not check for cyclic importing in definition modules (M2B did)
- This was because M2C and M2B were originally merged, so the check inside M2C
- used to be redundant.
-
- Any files named 'obj','sym','bin' '/obj'... would be mistaken for
- directories.
-
- VAL on constants was converting to a compiler prefered type, rather than the
- type that was specified.
-
- Made some changes to InOut.mod.
-
- Imported identifier aliasing could not be applied to local modules.
-
- Linking with Coroutines used to fail, because the symbol '__Abort' could
- not be found. This reference should have been (re)named to '__m2_Abort'.
-
- When stack checking used to fail, the stack would be reset to that recorded
- in the m2_main.o code (m2_safeStack).This was required so that the Error
- Requester call would have enough stack. However this meant the stack would
- be overwritten, which in turn meant that any clean up code specified
- with StdLib.atexit, could not reliably access the stack (through any global
- pointers) if stack checking was used. If V1.2 M2Lib.CheckStack* fails a
- new stack is allocated for the Requestor call, so the old stack can be
- referenced by any atexit() or CLOSE clean up code.
-
- ====================================================
- 27/Sept/94 Released Initial version V1.1 onto AmiNet
- ====================================================
-
-
-